<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ONLYOFFICE使用方法</title>
    <!-- 引入外部jquery文件 -->
    <script
      type="text/javascript"
      src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"
    ></script>
    <!-- 引入外部JavaScript文件 -->
    <script
      type="text/javascript"
      src="http://192.168.33.129:9500/web-apps/apps/api/documents/api.js"
    ></script>
  </head>

  <body>
    <div id="placeholder"></div>
    <script language="javascript" type="text/javascript">
      var onDocumentReady = function (event) {
        console.log("文档初始化成功:{event}" + JSON.stringify(event));
      };
      var onDocumentStateChange = function (event) {
        console.log("文档修改成功:{data}" + JSON.stringify(event));
      };
      var onRequestHistoryData = function (event) {
        var version = event.data;
        $.ajax({
          url: "http://192.168.1.25:8088/changes",
          data: {
            version: version,
          },
          method: "get",
          type: "text",
          success: function (result) {
            console.log(JSON.stringify(result));
            var url = result.url;
            var key = result.key;
            var version = result.version;
            docEditor.setHistoryData({
              changesurl: url,
              key: key,
              previous: {
                key: key,
                url: url,
              },
              url: url,
              version: version,
            });
          },
        });
      };

      var onRequestHistory = function (event) {
        console.log("获取文档历史数据");
        console.log(JSON.stringify(event));
        $.ajax({
          url: "http://192.168.1.25:8088/history",
          success: function (result) {
            console.log("成功:" + JSON.stringify(result));
            console.log(result.length);
            docEditor.refreshHistory({
              currentVersion: result.length,
              history: result,
              // history: [
              //   {
              //     serverVersion: "6.4.2",
              //     created: "2022-07-09 08:44:32",
              //     user: {
              //       name: "张三",
              //       id: "1001",
              //     },
              //     key: 1657356254525,
              //     version: 1,
              //   },
              //   {
              //     serverVersion: "6.4.2",
              //     created: "2022-07-09 08:44:32",
              //     user: {
              //       name: "张三",
              //       id: "1001",
              //     },
              //     key: 1657356301616,
              //     version: 2,
              //   },
              // ],
            });
          },
          error: function (result) {
            console.log("错误:" + JSON.stringify(result));
          },
        });
      };
      var onRequestHistoryClose = function () {
        document.location.reload();
      };
      var timestamp = new Date().getTime() + "";
      console.log(timestamp);
      var docEditor = new DocsAPI.DocEditor("placeholder", {
        document: {
          fileType: "docx",
          key: timestamp,
          title: "示例文档.docx",
          url: "http://192.168.1.25:8088/file/download?filePath=E:/办公文件/wyh文件夹/study/Onlyoffice/示例文档.docx",
          info: {
            owner: "张三",
            sharingSettings: [
              {
                permissions: "Full Access",
                user: "李四",
              },
              {
                permissions: "Read Only",
                user: "王五",
              },
            ],
            uploaded: "2022-07-09 3:36 AM",
          },
          permissions: {
            edit: true,
            fillForms: true,
            print: true,
            review: true,
            comment: true,
            copy: true,
            download: true,
            modifyContentControl: true,
            modifyFilter: true,
          },
        },
        documentType: "word",
        editorConfig: {
          user: {
            id: "1",
            name: "张三",
          },
          createUrl: "http://192.168.1.25:8088/file/create",
          lang: "zh-CN",
          callbackUrl:
            "http://192.168.1.25:8088/file/callback?filePath=E:/办公文件/wyh文件夹/study/Onlyoffice/示例文档.docx",
          customization: {
            help: true,
            hideRightMenu: false,
            autosave: true,
            forcesave: true,
            chat: true,
            commentAuthorOnly: true,
            comments: true, //定义是显示还是隐藏"注释"菜单按钮；请注意，如果您隐藏"评论"按钮，则相应的评论功能将仅可用于查看，评论的添加和编辑将不可用。默认值为true。
            compactHeader: true, //定义是否将菜单栏放在在徽标旁边使界面更加紧凑默认false
            compactToolbar: false, //定义显示的顶部工具栏类型是完整（false）还是紧凑true。默认值为false 多余菜单将在右侧折叠点击显示
            compatibleFeatures: false, //定义仅与OOXML格式兼容的功能的使用。例如，不要在整个文档上使用注释。默认值为false。
            macros: true, //定义是否将运行文档宏以及可用的宏设置。默认值为true。
            macrosMode: "warn", //定义是否将运行文档宏。可以采用以下值： disable -根本不运行；enable -自动运行所有宏；warn -警告宏并请求允许运行。默认值为original。
            plugins: true, //定义是否将启动插件并可用。默认值为true。
            showReviewChanges: false, //定义在加载编辑器时是否自动显示或隐藏审阅更改面板。默认值为false。
            spellcheck: true, //定义在加载编辑器时是否自动打开或关闭拼写检查器。拼写检查器仅适用于文档编辑器和演示文稿编辑器。默认值为true。
            toolbarNoTabs: true, //定义是突出显示顶部工具栏选项卡样式。默认值为false。
            unit: "cm", //定义在标尺和对话框中使用的度量单位。可以采用以下值：cm -厘米，pt-点，inch -英寸。默认值为厘米（cm）。
            zoom: 100, //定义以百分比为单位的文档显示缩放值。可以取大于0的值。对于文本文档和演示文稿，可以将此参数设置为-1（使文档适合页面选项）或-2（使文档页面宽度适合编辑器页面）。默认值为100。
            customer: {
              //关于 文档编辑器的显示信息
              address: "My City, 123a-45", //有权访问编辑或编辑作者的公司或个人的邮政地址，
              info: "Some additional information", //有关您希望其他人认识的公司或个人的一些其他信息，
              logo: "https://ftp.bmp.ovh/imgs/2021/07/d48986974acd43e8.png", //图片徽标的路径（此文件没有特别建议，但是如果使用透明背景的.png格式会更好）。图片必须具有以下尺寸：432x70，
              mail: "john@example.com", //有权访问编辑者或编辑者的公司或个人的电子邮件地址
              name: "欧阳锋", //该公司或个人的谁可以访问编辑或编辑作者，名称
              www: "example.com", //以上公司或个人的家庭网站地址，
            },
            feedback: {
              //反馈配置信息
              url: "https://baidu.com", //单击"反馈和支持"菜单按钮时将打开的网站地址的绝对URL ，
              visible: true, //显示或隐藏"反馈和支持"菜单按钮，
            },
            goback: {
              //定义"打开文件位置"菜单按钮和右上角按钮的设置。该对象具有以下参数：
              blank: true, //在新的浏览器选项卡/窗口（如果值设置为true）或当前选项卡（如果值设置为false）中打开网站。默认值为true，
              requestClose: false, //定义如果单击"打开文件位置"按钮，则调用events.onRequestClose事件，而不是打开浏览器选项卡或窗口。默认值为false，
              text: "打开文件位置", //将在"打开文件位置"菜单按钮和右上角按钮（即，而不是"转到文档"）上显示的文本，
              url: "file:///E:/材料/项目材料/Html/file", //单击"打开文件位置"菜单按钮时将打开的网站地址的绝对URL ，
            },
            logo: {
              image: "https://ftp.bmp.ovh/imgs/2021/07/d48986974acd43e8.png", //图像文件的路径，用于在普通工作模式下显示（即，在所有编辑器的查看和编辑模式下）。图片必须具有以下尺寸：172x40，
              imageEmbedded:
                "https://ftp.bmp.ovh/imgs/2021/07/d48986974acd43e8.png", //用于以嵌入式模式显示的图像文件的路径（请参阅config部分以了解如何定义嵌入式文档类型）。图片必须具有以下尺寸：248x40，
              url: "https://www.baidu.com", //某人单击徽标图像时将使用的绝对URL（可用于转到您的网站等）。保留为空字符串或null以使徽标不可单击，
            },
          },
        },
        events: {
          //事件配置
          // onAppReady,//-将应用程序加载到浏览器时调用的函数。
          // onCollaborativeChanges //-当文档由其他用户在严格共同编辑模式下共同编辑时调用的函数。
          // onDownloadAs,//-调用downloadAs方法时，使用指向已编辑文件的绝对URL调用的函数。在data参数中发送要下载的文档的绝对URL 。
          // onError,//-发生错误或其他特定事件时调用的函数。错误消息在data参数中发送。
          // onInfo,//-应用程序打开文件时调用的函数。该模式在data.mode参数中发送。可以查看或编辑。
          // onMetaChange,//-通过meta命令更改文档的元信息时调用的函数。文档名称通过data.title参数发送。
          // onOutdatedVersion,//-使用旧的document.key值打开文档进行编辑时，显示错误后调用的函数，该值用于编辑先前的文档版本并已成功保存。调用此事件时，必须使用新的document.key重新初始化编辑器。
          // onReady,//-将应用程序加载到浏览器时调用的函数。自从5.0版本不推荐使用，请使用onAppReady代替
          // onRequestClose,//-结束编辑器的工作并且必须关闭编辑器时调用的函数。
          // onRequestCompareFile,//-用户尝试通过单击"存储中的文档"按钮来选择要比较的文档时调用的函数。要选择要比较的文档，必须调用setRevisedFile方法。如果未声明该方法，则不会显示"来自存储的文档"按钮。
          // onRequestCreateNew,//-用户尝试通过单击"新建"按钮来创建文档时调用的函数。使用此方法代替createUrl字段。如果未声明该方法且未指定createUrl，则将不会显示"创建新"按钮。
          // onRequestEditRights,//-用户尝试通过单击"编辑文档"按钮尝试将文档从视图切换到编辑模式时调用的函数。调用该函数时，必须在编辑模式下再次初始化编辑器。如果未声明该方法，则不会显示"编辑"按钮。
          onRequestHistory: onRequestHistory, //-用户尝试通过单击"版本历史记录"按钮显示文档版本历史记录时调用的函数。要显示文档版本历史，您必须调用refreshHistory方法。如果未声明该方法和onRequestHistoryData方法，则不会显示"版本历史记录"按钮。
          onRequestHistoryClose: onRequestHistoryClose, //-当用户尝试通过单击"关闭历史记录"按钮来查看文档版本历史记录时，试图调用该文档时调用的函数。调用该函数时，必须在编辑模式下再次初始化编辑器。如果未声明该方法，则不会显示"关闭历史记录"按钮。
          onRequestHistoryData: onRequestHistoryData, //-用户尝试单击文档版本历史记录中的特定文档版本时调用的函数。
          // onRequestInsertImage,//-用户尝试通过单击"保存图像"按钮插入图像时调用的函数。图像插入的类型在参数data.c中指定。
          // onRequestRename,//-用户尝试通过单击"重命名..."按钮重命名文件时调用的函数。
          // onRequestRestore,//-用户单击版本历史记录中的"还原"按钮来还原文件版本时调用的函数。
          // onRequestSaveAs,//-用户尝试通过单击"另存为..."按钮保存文件时调用的函数。文档的标题和要下载的文档的绝对URL在data参数中发送。如果未声明该方法，则不会显示"另存为..."按钮。
          // onRequestSharingSettings,//-用户单击"更改访问权限"按钮来管理文档访问权限时调用的函数。必须调用setSharingSettings方法来更新有关允许与其他用户共享文档的设置的信息。如果未声明该方法，则不会显示"更改访问权限"按钮。
          // onRequestUsers,//-评论者可以选择要在评论中提及的其他用户时调用的函数。要设置用户列表，必须调用setUsers方法。
          // onWarning,//-发生警告时调用的函数。警告消息在data参数中发送。
          onDocumentStateChange: onDocumentStateChange, //文档改变后的回调
          onDocumentReady: onDocumentReady, //文档初始化准备好后的回调
        },
        height: "935px",
        type: "desktop",
      });
    </script>
  </body>
</html>
